Residencia de Epidemiología
La etapa de depuración o limpieza de datos comienza con la exploración inicial y el diagnóstico adecuado de cada variable de interés de la tabla de datos cruda. Interviene aquí también, el objetivo del análisis, el protocolo de análisis pensado y el diccionario de datos asociado a la tabla.
Finalmente se hacen las transformaciones necesarias en los datos a partir del diagnóstico realizado.
Detección de errores
Identificación de las categorías de las variables cualitativas
Análisis de los mínimos y máximos de valores de cada variable cuantitativa
La exploración de datos se puede incluir dentro del análisis exploratorio de datos (EDA en inglés) y persigue un primer grupo de objetivos:
Habitualmente hablamos de calidad de los datos en relación a los items anteriores.
Una segunda etapa nos va servir para conocer la distribución de las variables de interés a partir de:
Vamos a trabajar con dos paquetes especiales que nos permiten hacer este trabajo, aunque dentro del universo de librerías de R vamos a encontrar muchos mas.
skimr
Está diseñado para obtener un resumen rápido de la estructura de tablas de datos y es compatible con el ecosistema tidyverse.
dlookr
Se define como una colección de herramientas que permiten el diagnóstico, la exploración y la transformación de datos. El diagnóstico de datos proporciona información y visualización de valores faltantes, valores atípicos y valores únicos y negativos para ayudarle a comprender la distribución y la calidad de sus datos.
Otro de los problemas con los debemos lidiar muchas veces es tener observaciones duplicadas.
Las tareas habituales en estos casos son:
Las observaciones duplicadas pueden ser completas, generalmente a raíz de algún problema informático o bien parcial.
Habitualmente nuestras tablas tienen identificadores únicos de las unidades de análisis o una serie de identificadores que resultan en una clave combinada.
La función get_dupes() del paquete janitor es una herramienta útil para identificar estas repeticiones.
Para eliminar filas duplicadas en una tabla de datos podemos utilizar la función distinct() de dplyr.
distinct() muestra observaciones únicas a partir de la coincidencia total o parcial.
La función tiene un argumento denominado .keep_all que permite valores TRUE o FALSE. Si se iguala a TRUE se mantienen en el resultado todas las variables que son parte de la tabla, aunque estas no estén declaradas dentro del distinct().
Por defecto, este argumento se encuentra igualado a FALSE.
Recortar es similar a filtrar, la diferencia está en que se filtra por condiciones y recortamos por posiciones.
La familia de funciones que se puede utilizar para recortar es slice_*().
Estas funciones pueden ser muy útiles si se aplican a un dataframe agrupado porque la operación de recorte se realiza en cada grupo por separado.
Por ejemplo, si en una tabla hay varias filas por persona con fechas distintas de un seguimiento y queremos quedarnos con la última visita, podemos utilizar combinado group_by() y slice_max() para quedarnos sólo con esa observación del último encuentro para cada uno.
Si lo que buscamos es mantener a todas las observaciones de la tabla pero marcar aquellos que consideramos duplicados podemos hacer:
Recortar el dataframe original a sólo las filas para el análisis. Guardar los ID de este dataframe reducido en un vector.
En el dataframe original, creamos una variable de marca usando case_when(), basándonos si el ID está presente en el dataframe reducido (vector de ID anterior).
Instituto Nacional de Epidemiología